﻿<?php

class liquidaciones extends MY_Controller {
     
	public function __construct() {
        parent::__construct();
		$this->load->model('Liquidaciones_model','',TRUE);
    }
    
    public function index(){
        if($this->caja_abierta()){};
          
        
        $liquidaciones = $this->Liquidaciones_model->buscar_liquidaciones();
	if(!$liquidaciones){
            $data['table'] = '<p style="text-align: left ">No se encontraron liquidaciones de honorarios a profesores pendientes de pago.<p>';  
        }else{		
	// generate table data
        $this->load->library('table');
        $this->table->set_empty("&nbsp;");
        $this->table->set_heading('Curso','Lugar de Dictado','Profesor', 'Fecha de Liquidacion','Fecha Inicio', 'Fecha Fin', 'Importe', 'Acciones');
	$i = 0;
	foreach ($liquidaciones as $liquidacion)
	{
		$this->table->add_row($liquidacion->Cur_Nombre,
                                $liquidacion->Dic_LugarDictado,
                                $liquidacion->Pro_ApeNom,
                                date('d-m-Y',strtotime($liquidacion->Liq_Fecha)),
                                date('d-m-Y',strtotime($liquidacion->Liq_Desde)),
				date('d-m-Y',strtotime($liquidacion->Liq_Hasta)),
                                $liquidacion->Liq_Monto,
                                anchor('liquidaciones/cobrar/'.$liquidacion->Liq_Id,'Pagar',array('class'=>'money'))
			);
	}
	$data['table'] = $this->table->generate();
        }
        
        $datoPrincipal ['contenidoPrincipal'] = $this->load->view('liquidaciones/liquidaciones', $data, TRUE);
        $this->load->view('templates',$datoPrincipal);
    }   
    
    public function buscar(){
       if($this->caja_abierta()){};
	$query = $this->input->post('Cur_Nombre');
        
	$liquidaciones = $this->Liquidaciones_model->buscar_curso($query);
	if(! $liquidaciones){
            $data['table']="<p style='text-align: left'>No se encontró curso $query con liquidaciones de honoraios pendiente de pago.</p>";
            
        }else{		
	// generate table data
        $this->load->library('table');
        $this->table->set_empty("&nbsp;");
        $this->table->set_heading('Curso','Lugar de Dictado','Profesor', 'Fecha de Liquidacion','Fecha Inicio', 'Fecha Fin', 'Importe', 'Acciones');
	$i = 0;
	foreach ($liquidaciones as $liquidacion)
	{
		$this->table->add_row($liquidacion->Cur_Nombre,
                                      $liquidacion->Dic_LugarDictado,
                                      $liquidacion->Pro_ApeNom,
                                      date('d-m-Y',strtotime($liquidacion->Liq_Fecha)),
                                      date('d-m-Y',strtotime($liquidacion->Liq_Desde)),
                                      date('d-m-Y',strtotime($liquidacion->Liq_Hasta)),
				      $liquidacion->Liq_Monto,
                                      anchor('liquidaciones/cobrar/'.$liquidacion->Liq_Id,'Pagar',array('class'=>'money'))
			);
	}
	$data['table'] = $this->table->generate();
        
        }	
        $datoPrincipal ['contenidoPrincipal'] = $this->load->view('liquidaciones/liquidaciones', $data, TRUE);
        $this->load->view('templates',$datoPrincipal);
    }
    
    function valid_date($str)
	{
		//match the format of the date
		if (preg_match ("/^([0-9]{2})-([0-9]{2})-([0-9]{4})$/", $str, $parts))
		{
			//check weather the date is valid of not
			if(checkdate($parts[2],$parts[1],$parts[3]))
				return true;
			else
				return false;
		}
		else
			return false;
	}
    
    
    public function cobrar($Liq_Id){
        
                if($this->caja_abierta()){};
                $data ['subtitulo']='EGRESOS - Pago de Liquidaciones';
                $data['id']=$Liq_Id;
                //$this->form_validation->set_rules('comp_nro','Recibo Nº','required|trim|exact_length[13]|xss_clean');
                $this->form_validation->set_rules('formaPago','Forma de Pago','required|trim|xss_clean');
                $this->form_validation->set_rules('comp_tipo','Tipo comprobante','required|trim|xss_clean');
                $this->form_validation->set_rules('comp_nro','Comprobante Nº','required|trim|xss_clean');
                $this->form_validation->set_rules('descripcion','Descripción','required|trim|max_length[50]|xss_clean');
                $this->form_validation->set_rules('fecha', 'fecha', 'trim|required|callback_valid_date');
                $this->form_validation->set_message('valid_date', 'El formato de Fecha ingresado no es Valido. (dd-mm-aaaa)');
                
				
				$rows= $this->Anticipos_model->buscarbancos();
        foreach ($rows as $row) {
			$cuenta[$row->Cue_Nro] = $row->Cue_Nro;
		}
		
		$data['cuenta']=$cuenta;
                 // validacion del chequeForm
        if ($this->input->post('formaPago')=='Cheque'){
                       $this->form_validation->set_rules('numero_cheque','numero_cheque','required|trim|xss_clean');
            
        }
                
                if ($this->form_validation->run() == FALSE){
                    $puesto=$this->session->userdata('puesto');
			
                    $data['rbo_nro']=$this->MovimientosCaja_model->recibo_cooperadora();
  
                    $data['id']=$Liq_Id;
                    $liquidaciones= $this->Liquidaciones_model->buscar($Liq_Id);

                    // generate table data

                    $this->table->set_empty("&nbsp;");
                    //$i = 0;
                    foreach ($liquidaciones as $liquidacion)
                    {   $data['liquidacion']=$liquidacion;
                        $this->table->add_row(
                                            "<b>Nombre: </b>$liquidacion->Pro_ApeNom",
                                            "<b>DNI: </b>$liquidacion->Pro_DNI",
											"<b>Nombre del Curso: </b>$liquidacion->Cur_Nombre",
											"<b>Importe: </b>$liquidacion->Liq_Monto"

                                    );$monto = $liquidacion->Liq_Monto;
                    }
					$rows= $this->Anticipos_model->buscarbancos();
        			foreach ($rows as $row) {
					$bancos= $row->Banco_Nombre;
		}
		
						

		$data['bancos']='Banco Hipotecario';
					$fecha = date('d-m-Y');
					$data['fecha'] = $fecha;
					$data['monto'] = $monto;
					$data['message'] = '';
                    $data['table'] = $this->table->generate();
                    $datoPrincipal ['contenidoPrincipal'] = $this->load->view('Liquidaciones/cobro_liquidacion', $data, TRUE);
                }else{
                    $comp_tipo = $this->input->post('comp_tipo');
                    $comp_nro = $this->input->post('comp_nro');
                    $formaPago = $this->input->post('formaPago');
                    $desc = $this->input->post('descripcion');
                    $monto = $this->input->post('monto');
                    $fecha = $this->input->post('fecha');
                    if($formaPago=='Cheque'){
                        $cuenta = $this->input->post('cuenta');
                        $numero_cheque = $this->input->post('numero_cheque');
                        $data['cuenta']=$cuenta;
                        $data['numero_cheque'] = $numero_cheque;
                    }
                    $liquidaciones= $this->Liquidaciones_model->buscar($Liq_Id);

                    // Genero la tabla que muestra los datos de cliente
                    foreach ($liquidaciones as $liquidacion)
                    {   $data['apeNom']=$liquidacion->Pro_ApeNom;
                        $data['dni']=$liquidacion->Pro_DNI;
                        $data['CurNombre']=$liquidacion->Cur_Nombre;
                        $data['lugardictado']=$liquidacion->Dic_LugarDictado;    
                    	$data['monto']=$liquidacion->Liq_Monto;
					}
                    //CARGO LOS DATOS DEL CHEQUE
                    if($formaPago=='Cheque'){
                        
                         $bco = $this->input->post('banco');
                         $suc = $this->input->post('sucursal');
                         $nro_cheque = $this->input->post('numero_cheque');
                       
                         
                         $nombres=  $this->Cheque_model->nombres_bancosuc($bco,$suc);
                         foreach ($nombres as $nombre){
                             $banco=$nombre->Banco_Nombre;
                             $sucursal=$nombre->Suc_Nombre;
                         }
                         $rows= $this->Anticipos_model->buscarbancos();
       

                         
                         $data['bco_id'] = $bco;
                         $data['suc_id'] = $suc;
						 $data['numero_cheque'] = $nro_cheque;
						}else{$nro_cheque=0;
							  $data['numero_cheque'] = $nro_cheque;
							  $data['bco_id'] = 0;
                         	  $data['suc_id'] = 0;}
					
                    // Genero la tabla que muestra el detalle del movimiento
                    $data['comp_tipo'] = $comp_tipo;
                    $data['comp_nro']=$comp_nro;
                    $data['formaPago']=$formaPago;
                    $data['desc']=$desc;
                    
                    $data['fecha'] = $fecha;
                    //$data['link_back'] = anchor('alquileres/cobrar/'.$id,'Volver',array('class'=>'back'));
                    
                   
				   
				   //aca saca la fecha de apertura de caja para la comparacion con la fecha ingresada
								$caj_id=$this->session->userdata('caja_id');
								$query="SELECT * FROM Cajas WHERE Cajas.Caj_Id='$caj_id'";                                            
									$result=$this->db->query($query);
           							$res=$result->result();
									foreach ($res as $re){
										$fechaapertura = $re->Caj_FechaHoraApertura;
										$fechaapertura = date('d-m-Y',strtotime($fechaapertura));
									}
                                    $fechaHoy=date('d-m-Y');
				   					$fecha2=$fechaapertura;
									$fechaapertura=strtotime($fechaapertura);
									$fecha=strtotime($fecha);
									$fechaHoy=strtotime($fechaHoy);
				   					if (($fecha<$fechaapertura) OR ($fecha>$fechaHoy)){
																					$puesto=$this->session->userdata('puesto');
													
															$data['rbo_nro']=$this->MovimientosCaja_model->recibo_nro($puesto);
										  
															$data['id']=$Liq_Id;
															$liquidaciones= $this->Liquidaciones_model->buscar($Liq_Id);
										
															// generate table data
										
															$this->table->set_empty("&nbsp;");
															//$i = 0;
															foreach ($liquidaciones as $liquidacion)
															{   $data['liquidacion']=$liquidacion;
																$this->table->add_row(
																					"<b>Nombre: </b>$liquidacion->Pro_ApeNom",
																					"<b>DNI: </b>$liquidacion->Pro_DNI",
																					"<b>Nombre del Curso: </b>$liquidacion->Cur_Nombre",
																					"<b>Importe: </b>$liquidacion->Liq_Monto"
										
																			);$monto = $liquidacion->Liq_Monto;
															}
															$rows= $this->Anticipos_model->buscarbancos();
															foreach ($rows as $row) {
															$bancos= $row->Banco_Nombre;
												}
															$fecha = date('d-m-Y');
															$data['fecha'] = $fecha;
															$data['monto'] = $monto;
															$data['table'] = $this->table->generate();
															$data['message'] = "FECHA debe ser mayor o igual a la Apertura de Caja: $fecha2, y no mayor a la fecha de hoy'";
															$datoPrincipal ['contenidoPrincipal'] = $this->load->view('Liquidaciones/cobro_liquidacion', $data, TRUE);

				   
				   }else{		
				   				$datoPrincipal ['contenidoPrincipal'] = $this->load->view('Liquidaciones/confirmacion', $data, TRUE);}
				   
				   
				   
				   
				   
				    }//fin del else de la validacion
                  
				   $this->load->view('templates',$datoPrincipal);
                
    }
    
public function registrar($Liq_Id){
                if($this->caja_abierta()){};
                $data ['subtitulo']='EGRESOS - Pago de Liquidaciones';
                $data['id']=$Liq_Id;
    			
				$autorizados= $this->Liquidaciones_model->buscarpro($Liq_Id);
        		foreach ($autorizados as $autorizado)
				{
           			$nombre = $autorizado->Pro_ApeNom;
                                $Cur_Id = $autorizado->Cur_Id;
                                $Dic_Id = $autorizado->Dic_Id;
				}
				
				
                $tipo_desc='liquidacion';
                $tipos= $this->Liquidaciones_model->tipo_movimiento($tipo_desc);
                foreach ($tipos as $tipo){
                    $tm=$tipo->TipMov_Id;
                    
                }
                
                $centros=  $this->Liquidaciones_model->centro_costo_grupo($Cur_Id,$Dic_Id);
                foreach ($centros as $centro){
                    $sec=$centro->Sec_Id;
                    $dir=$centro->Dir_Id;
                    $gru=$centro->Gru_Id;
                    $cur=$centro->Cur_Id;
                    $Dic=$centro->Dic_Id;
                }
                $comp_tipo = $this->input->post('comp_tipo');
                $com_nro = $this->input->post('comp_nro');
                $formaPago = $this->input->post('formaPago');
                $desc = $this->input->post('desc');
                $monto = $this->input->post('monto');
                $fecha = $this->input->post('fecha');
		$fecha = date('Y-m-d',strtotime($fecha));
                $cuenta = $this->input->post('cuenta');
                //cambiar caj_id cuando tengamos sesiones
                
                
				//obtengo el banco y la sucursal del numero de cuenta ingresado
                $query="SELECT * FROM Cuentas WHERE Cuentas.Cue_Nro='$cuenta'";                                            
						$result=$this->db->query($query);
           				$res=$result->result();
						foreach ($res as $re){
									$bco_id = $re->Banco_Id;
									$suc_id = $re->Suc_Id;}
				
                $nro_cheque = $this->input->post('numero_cheque');
		$comp_nro_Externo = $this->input->post('comp_nro');
                
				
  				$Descripcion = $desc;
  
  
  				$Cheq_Librador = 'Cooperadora';
  				$Cue_id = 1;
 			   
			   
 			   $Cheq_Librador = 'Cooperadora';
               $fecha = date('d-m-Y',strtotime($fecha));
			   $Cheq_FechaCobro = $fecha;
			   if($formaPago=='Cheque'){
                $carga=$this->Anticipos_model->insertcheque($Cue_id,$bco_id,$suc_id,$nro_cheque,$Cheq_Librador,$monto,$fecha,$Cheq_FechaCobro,$Descripcion);
				}
				
                $caj_id=$this->session->userdata('caja_id');
                $fecha=$this->Liquidaciones_model->insertMovimientoCaja($caj_id,$tm,$monto,$desc,$fecha,$formaPago,'FALSE',$sec,$dir,$gru,$cur,$Dic,$nombre);
                
                $movimientos=$this->Liquidaciones_model->get_id($caj_id,$fecha);
                foreach ($movimientos as $movimiento){
                    $mov_id=$movimiento->Mov_Id;
                }
                
                
                
               $this->MovimientosCaja_model->insert_comprobanteEgreso($comp_tipo,$com_nro,$caj_id,$mov_id);
               
                
                $liq = $this->RendicionesCaja_model->update_egreso($caj_id,$monto);
		$liquidaciones = $this->Liquidaciones_model->update($Liq_Id,$caj_id,$mov_id);
                //Armo la vista
                if ($liquidaciones==FALSE){
                    $data['message']='Error, no guardado.';
                }else{
                    $data['message'] = '<div class="success">Exito!</div>';
                
                }
                $datoPrincipal ['contenidoPrincipal'] = $this->load->view('liquidaciones/imprimir', $data, TRUE);
                
                $this->load->view('templates',$datoPrincipal);      
    }
    
}

?>